package com.own.component.common.hook.business;

import com.own.constant.ConstantAccount;

import javax.servlet.http.HttpServletRequest;

/**
 * LoginSecurityHook
 *
 * @author chenxueli
 * @date 2023-02-13 14:34:00
 */
public interface LoginSecurityHook {

    /**
     * 验证方法
     *
     * @param client      客户端信息
     * @param userId      用户ID
     * @param accountType 账号类型 1=普通账号 2=管理员
     * @param request     请求信息
     * @return 是否验证成功
     */
    LoginSecurityHookEntity check(String client, Long userId, ConstantAccount.TypeEnum accountType, HttpServletRequest request);

    /**
     * 客户端
     *
     * @return 客户端
     */
    default String[] client() {
        return null;
    }

}
